Booleans

The standard boolean objects for true and false are written as <#10#><#10#> and .<#11#>t<#11#><#12#>f<#12#> What really matters, though, are the objects that the Scheme conditional expressions (<#13#>if<#13#>, <#14#>cond<#14#>, <#15#>and<#15#>, <#16#>or<#16#>, <#17#>do<#17#>) treat as true or false. The phrase ``a true value'' (or sometimes just ``true'') means any object treated as true by the conditional expressions, and the phrase ``a false value'' (or ``false'') means any object treated as false by the conditional expressions.

Of all the standard Scheme values, only <#22#><#22#> is guaranteed to count as false in conditional expressions. It is not specified whether the empty list counts as false or as true in conditional expressions. Except for <#24#><#24#> and possibly the empty list, all standard Scheme values, including , pairs, symbols, numbers, strings, vectors, and procedures, count as true.


#rationale25#


#note28#

Boolean constants evaluate to themselves, so they don't need to be quoted in programs.


#scheme32#


#entry34#


#entry45#